package test01;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class MyJFrame2 extends JFrame implements MouseListener {
    /*这个类是继承了JFrame 它本身就是一个最外面的大框框
    * */


    JButton jtb1=new JButton("点我啊");

    public MyJFrame2(){
        this.setSize(603,680);
        this.setTitle("事件演示");
        this.setAlwaysOnTop(true);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(3);
        this.setLayout(null);
        //设置按钮的位置与宽高
        jtb1.setBounds(0,0,100,50);

        //有了按钮以后就给按钮添加事件(鼠标事件)
        /*这里传参的时候 参数MouseListener类型 我们可以传入他的子类或者实现该接口的类 这个就叫多态
        然后这个addMouseListener函数，这个函数是jtb1按钮的成员函数，函数对自动调用 参数的东西去完
        成你的目的（详见源码）
        * */
        //ctrl+p 显示函数所需要的参数 但是他的参数是一个类或者接口
        // ，那就可以让本类继承或实现这个类或者接口 然后参数填this
        //选中addAncestorListener ctrl+B 查看源码

        jtb1.addMouseListener(this);

        //这位两个显示要放在最后
        this.getContentPane().add(jtb1);//按钮在页面中显示  显示的对象是按钮

        //所以按钮是参数，是页面使用了这个按钮
        this.setVisible(true);//显示页面  显示的对象是JFrame
    }



    /*
    MyJFrame2实现了MouseListener接口并重写里面的抽象方法
    * */
    @Override
    public void mouseClicked(MouseEvent mouseEvent) {
        //单击
        System.out.println("单击");
    }

    @Override
    public void mousePressed(MouseEvent mouseEvent) {
        //按住不松
        System.out.println("按住不松");
    }

    @Override
    public void mouseReleased(MouseEvent mouseEvent) {
        //松开
        System.out.println("松开");
    }

    @Override
    public void mouseEntered(MouseEvent mouseEvent) {
        //划入
        System.out.println("划入");
    }

    @Override
    public void mouseExited(MouseEvent mouseEvent) {
        //划出
        System.out.println("划出");
    }
}
